시험종목 : 제1602회 리눅스마스터 2급 2차 A형
시험일자 : 2016. 06. 11.(토), 14:00 ~ 15:40(100분)
바로가기 >> 리눅스마스터 기출문제 목록
chmod
파일이나 디렉터리에 접근할 수 있는 허가권을 설정하는 명령
chmod 명령에서 권한 지정방법 1번째
r | 읽기 | 4 |
w | 쓰기 | 2 |
x | 실행 | 1 |
ex) chmod 755 test
사용자는 7(4+2+1), 그룹은 5(4+1), order은 5(4+1) 의 권한으로 지정 -> 사용자는 7(읽기+쓰기+실행)의 권한을 주고 그룹과 order은 5(읽기+실행)의 권한을 줌
파일의 경우
읽기(r)권한 : cat, more, tail, vi 등 파일의 내용을 읽을 수 있는 권한
쓰기(w)권한 : 파일을 수정할 수 있는 권한
실행(x)권한 : 실행 가능 여부
디렉토리의 경우
읽기(r)권한 : ls 등 내부를 확인할 수 있는 권한
쓰기(w)권한 : mkdir, touch, rm 등 생성과 삭제가 가능한 권한
접근(x)권한 : 접근권한이 없으면 대부분의 명령어가 사용불가
chmod 명령에서 권한 지정방법 2번째
u g o a 각각 사용자(u), 그룹(g), order(o), all(a) 을 의미한다. 생략하면 all
+ – = 각각 권한 추가(+), 삭제(-), 지정(=)을 의미한다.
ex) chmod go-rx test : 그룹과 order에게 r(읽기) 과 x(실행) 를 제거
특수 퍼미션
SetUID(4) : 파일을 실행하는 동안에는 소유자의 권한을 획득하는 허가권. -rwsr-xr-x
SetGID(2) : 파일을 실행하는 동안에는 소유그룹의 권한을 획득하는 허가권. -rwxr-sr-x
Stick Bit(1) : 아무나 읽고 쓰기가 가능하지만 생성한 소유자만이 파일을 지울 수 있는 허가권. 이 권한의 설정은 무조건 other 계층에 설정하도록 되어 있으며 설정하면 other 계층 권한 부분의 x 자리에 t 로 표기된다. drwxrwxrwt
2번 문제 해설 참조
chown (change owner)
파일이나 디렉터리의 소유권 및 그룹 소유권을 변경하는 명령이다.
사용법
# chown [option] owner[:group] file(s)
umask
파일이나 디렉터리 생성시 부여되는 기본 허가권 값을 지정하는 명령이다. 파일 생성 시에는 666, 디렉터리인 경우에는 777에서 설정한 umask 값을 뺀 값을 기본 허가권으로 지정한다.
설정된 umask 값이 0002 인 경우 파일을 생성하면 기본 권한이 664(666-002), 디렉터리는 775(777-002)로 설정된다.
사용법
# umask [option] [값]
주요 옵션
-S : umask 값을 문자로 표기
ex)
umask : umask 값 출력
umask 022 : umask 값을 022 로 변경
NFS
TCP/IP 네트워크상에서 다른 컴퓨터의 파일 시스템을 마운트하고 공유하여 상대방의 파일 시스템 일부를 마치 자기 자신의 디렉터리인 것처럼 사용할 수 있게 해준다
mount
보조기억장치(HDD, FDD, CD-ROM 등)나 파일시스템이 다른 디스크를 / 의 하위 디렉터리로 연결하여 사용 가능하게 해주는 명령
이다.
사용법
# mount [option] [device] [directory]
주요옵션
-t fs_type : 파일시스템의 유형을 지정하는 옵션
-o : 마운트할 때 추가 설정을 적용할때 사용하는 옵션으로 다수의 조건을 적용할 때는 콤마로 구분한다.
-o 의 주요항목
ro : 읽기 전용으로 마운트한다.
rw : 읽기/쓰기 모드로 마운트한다. (기본값)
remount : 해당 파티션을 다시 마운트한다. 파티션 정보를 바꾸었을 때 사용한다.
loop : loop 디바이스로 마운트할 때 사용.
noatime : 파일의 내용을 읽게 되면 Access Time 이 변경되는데 이 옵션을 사용하면 파일이 변경되기 전까지는 Access Time 이 변경되지 않는다.
umount
언마운트의 약자로 마운트된 파일 시스템을 해제시켜주는 명령이다.
사용법
# umount [option] 디바이스명
# umount [option] 마운트된_디렉터리명
주요옵션
-a : /etc/mtab 에 명시된 파일 시스템을 언마운트할 때 쓰이는 옵션
-t fs_type : 언마운트할 파일 시스템을 지정할 때 사용하는 옵션
fidisk 실행 시 주요 명령
p : 현재 디스크 정보를 출력한다.
d : 파티션을 삭제한다.
n : 파티션을 새롭게 생성한다.
t : 파티션의 속성을 변경한다.(= 파티션의 시스템 id 를 변경한다.)
w : 변경된 파티션의 정보를 저장하고 종료한다.
q : 변경된 파티션의 정보를 저장하지 않고 종료한다.
mke2fs
ext2, ext3, ext4 파일 시스템을 만드는 명령으로 최근 리눅스 배포판에서 mkfs 명령 실행시 실제 사용되는 명령어이다.
파일 시스템의 유형을 지정하지 않으면 ext2 로 생성된다.
사용법
# mke2fs [option] 장치명
주요 옵션
-j : 저널링 파일 시스템인 ext3 로 만든다.
–t fs_type : 파일시스템의 유형을 지정하는 옵션
-b block_size : 블롯 사이즈를 지정하는 옵션으로 1024, 2048, 4096 으로 지정할 수 있다.
-R raid_options : RAID 관련 옵션으로 -R 다음에 argument=값 형태로 지정한다.
셸의 확인
명령 프롬프트 상에서 ‘echo $SHELL’ 이라고 실행하면 확인 가능하다. 또한 다른 셸을 사용하기 위해 변경 가능한 셸의 확인은 ‘chsh -l’ 명령을 실행하거나 ‘cat /etc/shells’ 로 확인할 수 있다.
Shell 의 확인 : 명령 프롬프트 상에서 ‘echo $SHELL’ 이라고 샐행하면 확인 가능
셸 변수 : 특정한 셸에서만 적용되는 변수. 변수명 앞에 $ 을 붙이고 echo 명령으로 확인
history
히스토리에 저장된 명령어 목록을 출력
ex) history 5 : 최근에 입력한 마지막 5개의 목록을 출력
alias
alias 란 별명이라는 뜻으로 어떠한 명령을 지정해 놓으면 사용자가 그 명령을 실행했을 때 alias 로 지정해 놓은 명령이 대신 실행되게 된다.
사용법
$ alias [별명=’명령어’]
$ unalias 별명
ex)
$ alias : 현재 설정된 alias 목록을 출력
$ alias ls=’ls -al’ : ls 명령을 실행하면 ls -al 명령이 실행되도록 설정
$ unalias ls : ls에 설정된 alias 를 해제
env : 현재 지정되어 있는 환경 변수들을 출력하거나, 새로운 환경 변수를 설정하고 적용된 내용을 출력하는 명령
셸에서 사용되는 특수문자
~ : 홈디렉터리
. : 현재 디렉터리를 나타내거나, 명령행 앞에서 source 라는 의미로 셸스크립트 등을 실행시킬 때 사용
.. : 부모 디렉터리
‘ ‘ : 작은따옴표는 모든 문자나 특수문자들을 일반문자로 취급한다.
” “ : 큰따옴표는 $, `, \, ! 를 제외한 모든 문자들을 일반문자로 취급한다.
` ` : 역따옴표는 명령 대체 기능을 수행하는데, 명령의 결과를 대체해서 사용한다.
# : 주석
$ : Shell 변수 기호. 뒤에 오는 문자열을 변수로 취급한다.
& : 특정 명령을 백그라운드로 실행할 때 사용한다.
* : 아무것도 없는 경우를 모함한 모든 문자를 의미한다.
: 보통 한 문자를 대체할 때 사용한다. 특정 명령에 대한 결과를 갖는 Return 변수로도 쓰인다.
( ) : 부속 shell(subshell) 을 뜻하는 기호로 하나의 셸 단위로 묶어준다.
\ : 탈출문자로 바로 다음에 오는 특수문자의 기능을 없앤다. 또한 alias가 설정된 명령어 앞에 사용하는 경우에는 alias 를 없애준
다. 긴 명령행 입력 시에 행을 연장할 때도 사용한다.
[] : bracket 라고 부르며 선택할 수 있는 문자를 나열한다. 범위를 지정할 때는 – 를 사용한다.
{} : 안에 나열된 문자열 중 하나로 대치시킨다.
< : 입력 재지정
> : 출력 재지정
/ : 경로명 디렉터리 분리자
! : 명령문 history
top
동작중인 프로세스의 상태를 실시간으로 화면에 출력해 주는 명령으로 프로세스의 상태뿐만 아니라 CPU, 메모리, 부하 상태 등도 확인할 수 있다.
사용법
$ top [option]
주요 옵션
-d 갱신 시간 : 갱신 시간을 설정한다.(초단위)
-p : 특정 PID 값을 갖는 프로세스를 모니터링할 때 사용한다.
ps 명령어의 출력 필드
USER : 프로세스 소유자의 계정이름
PPID : 부모 프로세스의 PID
TTY : 프로세스 관련된 터미널 포트
RSS : 실제 메모리 사용량
cron 을 이용하여 주기적으로 실행하는 작업은 시스템 운영에 필요한 작업과 사용자의 필요에 의한 작업으로 나눌 수 있다.
실행에 필요한 작읍은 root 권한으로 /etc/crontab에 등록하여 주기적으로 수행할 수 있고 사용자는 crontab라는 명령을 수행해서 등록할 수 있다.
crontab 파일은 다음과 같이 총 7개의 필드로 구성되어 있다.
<minute> <hour> <day_of_month> <month> <day_of_week> <user-name> <command>
nice
프로세스의 우선순위를 변경하는 명령으로 NI값을 설정할 때 사용한다. 프로세스에 설정되어 있는 NI의 기본값은 0 이고 지정가능한 값의 범위는 -20 ~ 19 까지인데 값이 작을수록 우선순위가 높다. 일반 사용자는 NI값을 증가만 가능하고 root 사용자만이 NI 값을 감소시켜 우선순위를 높일 수 있다.
kill
프로세스에 특정한 시그널을 보내는 명령으로 옵션 없이 실행하면 프로세스에 종료 신호(15, TERM, SIGTERM)를 보낸다. 보통 중
지시킬 수 없는 프로그램을 종료시킬 때 많이 사용한다.
사용법
# kill [option] [signal] [PID 또는 %lob_number]
주요옵션
-l : 시그널의 종류를 출력
-s signal : 시그널의 이름을 지정하는 옵션
ex)
# kill 724
pid 가 724인 프로세스에 기본 시그널인 15번 시그널을 보낸다.
# kill -9 756 757 758
pid 가 756 757 758 인 프로세스를 강제 종료 한다.
시그널
Ctrl+C (SIGINT) : 프로세스를 종료시킨다.
Ctrl+Z (SIGTSTP) : 프로세스를 중단시킨다.
Ctrl+\ (SIGQUIT) : core dump를 남기고 프로세스를 종료시킨다.
하나의 프로세스가 다른 프로세스를 실행하기 위한 시스템 호출방법에는 fork 와 exec 가 있다.
fork 는 새로운 프로세스를 위해 메모리를 할당받아 복사본 형태의 프로세스를 실행하는 형태로 기존의 프로세스는 그대로 실행되어 있다.
exec 는 원래의 프로세스의 메모리에 새로운 프로세스의 코드를 덮어씌워 버린다.
emacs
이맥스. 유명한 UNIX 환경 텍스트 에디터 중 하나이다.
nano
UNIX 호환 시스템에서 사용 할 수 있는 가벼운 에디터.
Emacs, vim과 함께 UNIX 기본 에디터.
문자 및 문자열 단위의 치환
r : 커서가 위치한 한 문자를 치환
R : 입력 모드 전환되며 줄의 끝까지 한 문자씩 덮어 씀
s : 커서가 위치한 문자를 삭제하고 입력모드로 전환
S : 커서가 위치한 줄을 삭제하고 입력모드로 전환
u : 변경 내용 취소
vi 환경 설정 방법
vi가 실행될 때마다 미리 설정한 set 명령이 자동으로 적용
.exrc 파일(또는 .vimrc)
– 홈 디렉터리에 .exrc 파일을 생성
– set number 등 필요한 옵션을 설정
EXINIT(또는 VIMINIT) 환경변수
– 쉘에서 다음 두 줄을 실행하거나 ~/.bashrc에 두 줄을 추가
EXINIT=’set number ic‘
export EXINIT
number : set nu / set nonu (줄 번호 표시 / 표시 안 함)
force : 패키지의 중복 또는 다른 패키지의 파일 충돌 무시하고 설치 할수 있게 해주는 옵션
replacepkgs : 기존에 설치된 패키지를 삭제과정없이 무시하고 새로 설치하려고 할 경우 사용, 단 기존의 설치한 설정과 파일들 삭제
replacefiles : 현재 설치하려는 패키지의 일부 파일과 이미 설치되어 있는 다른 패키지의 일부 파일과 중복되어 설치가 되지 않을 경우에 사용
oldpackage : 현재 설치하려는 패키지의 버전이 이미 설치되어 있는 패키지의 버전보다 낮은 버전일때 나타는 에러를 무시하고 설치 하는 옵션
tar 옵션
-c : 지정한 파일이나 디렉터리를 하나로 묶어 새로운 tar 파일을 생성한다.
-x : 생성된 tar 파일을 푼다.
-v : 어떤 명령을 실행할 때 대상이 되고 있는 파일들을 보여준다.
-f 파일명 : 작업 대상이 되는 tar 파일의 이름을 지정한다.
-r : 기존의 tar 파일 뒤에 파일을 추가한다.
-t : tar 파일 안에 묶여 있는 파일의 목록을 출력한다.
– tvf : tar 파일의 내용을 볼때 사용하는 옵션
소스 설치법
리눅스에서 소스 프로그램을 설치하기 위해서는 보통 압축풀기 > 디렉터리 이동 > configure > make > make install 의 5단계를 거친다.
YUM (Yellowdog Updater, Modified)
rpm기반의 시스템에서 패키지를 손쉽게 설치해 주고 자동으로 업데이트를 수행하는 명령행 기반의 유틸리티이다.
사용법
yum [option]
주요옵션
-y : 모든 질의에 yes 라고 답한다.
-v : 자세한 정보를 출력한다.
command(명령)
list : 전체 패키지에 대한 정보를 출력
info : 패키지에 대한 정보를 출력
check : update 업데이트가 필요한 패키지를 출력
update : 패키지를 업데이트할 때 사용
install : 패키지를 설치할 때 사용
search : 문자열이 포함된 패키지를 찾아준다.
remove : 패키지를 삭제할 때 사용한다.
RPM(Red Hat Package Manager)
레드햇사에서 만든 패키지 관리기법으로 프로그램을 .rpm 형태의 파일로 배포하고, rpm 명령을 사용하여 손쉽게 설치 및 갱신,
제거, 검증, 질의 등의 관리를 할 수 있다.
rpm 사용법
rpm 명령의 사용법은 설치 및 갱신, 제거, 질의, 검증, 리빌드모드 등 총 5가지로 나눌 수 있다.
질의모드
패키지 관련 정보를 알아내기 위해 -q 옵션을 사용한다. -q 옵션만 사용하면 패키지 설치 유무나 간단한 버전정보만 출력한다.
더욱 정확한 정보출력을 위해서 -i, -a, -l, -d 등의 옵션과 연동해서 쓴다.
-q : 질의시 꼭 사용해야 하는 옵션. 패키지를 찾으면 이름과 버전만 표시
-i : 설치된 패키지의 정보를 출력한다. -p 옵션과 같이 사용하면 rpm 패키지 파일에 대한 정보를 알 수 있다.
-l : 패키지에서 설치한 모든 파일 정보를 출력한다. -p 옵션과 같이 사용하면 rpm 패키지 파일이 설치되는 목록 파일을 알 수 있다.
-a : 시스템에 설치된 모든 패키지 목록을 출력한다.
-p 패키지 파일명 : rpm 패키지의 파일에 대한 정보를 보여준다. 이 옵션을 사용하려면 패키지 파일의 정확한 이름을 입력해야 한
다.
YUM (Yellowdog Updater, Modified )
rpm기반의 시스템에서 패키지를 손쉽게 설치해 주고 자동으로 업데이트를 수행하는 명령행 기반의 유틸리티이다.
사용법
yum [option]
주요옵션
-y : 모든 질의에 yes 라고 답한다.
-v : 자세한 정보를 출력한다.
command(명령)
list 항목 : 전체 패키지에 대한 정보를 출력
info 패키지명 : 패키지에 대한 정보를 출력
check-update : 업데이트가 필요한 패키지를 출력
update 패키지명 : 패키지를 업데이트할 때 사용
install 패키지명 : 패키지를 설치할 때 사용
search 문자열 : 문자열이 포함된 패키지를 찾아준다.
remove 패키지명 : 패키지를 삭제할 때 사용한다.
grouplist : 패키지 그룹에 대한 정보를 출력
groupinfo 패키지그룹명 : 해당 패키지 그룹명과 관련된 패키지의 정보를 보여준다.
groupupdate 패키지그룹명 : 지정한 그룹의 패키지를 업데이트 한다.
groupinstall 패키지그룹명 : 지정한 그룹의 패키지를 설치한다.
groupremove 패키지그룹명 : 지정한 그룹의 패키지를 제거한다.
소스 코드 컴파일
리눅스에서 소스 프로그램을 설치하기 위해서는 보통 압축풀기 > 디렉터리 이동 > configure > make > make install 의 5단계를 거친다.
소스 설치의 주요 3단계
configure : 소스 프로그램의 환경 설정을 하는 스크립트이다.
make : 소프트웨어를 컴파일하는 유틸리티로 configure 에 의해 변경된 내용을 반영하고 타겟과 의존성 관련 작업을 하고 최종적으로 실행파일을 만든다.
make install : 컴파일된 실행 파일을 지정한 속성으로 지정된 디렉터리에 설치한다.
cmake
cmake는 소스 컴파일 시 사용되는 Make 의 대체 프로그램으로 멀티 플랫폼을 지원하기 위한 목적으로 등장한 오픈소스 프로젝트이다. cmake를 사용하는 대표적인 프로그램에는 mysql 이 있는데, configure 와 make 작업을 cmake 로 통합해서 설치 한다.
CUPS(Common Unix Printing System)
컴퓨터를 인쇄 서버로 기능하도록 해주는 유닉스 계열 운영 체제를 위한 모듈 방식의 프린팅 시스템
애플에서 개발한 오픈 소스 프린팅 시스템으로 유닉스 계열 운영체제의 시스템을 프린터 서버로 사용가능하게 해준다.
CUPS 관련 파일
/etc/cups/cupsd.conf : CUPS 프린터 데몬의 환경 설정 파일로 기본 문법이 아파치의 httpd.conf 와 유사하다.
/etc/cups/printers.conf : 프린터 큐 관련 환경 설정 파일로 lpadmin명령을 이용하거나 웹을 통해 제어할 수 있다.
/etc/cups/classes.conf : CUPS 프린터 데몬의 클래스(class) 설정 파일.
cupsd : CUPS의 프린터 데몬
프린터의 설정
레드햇 리눅스에서는 초기에 printtool, printconf 와 같은 유틸리티를 사용하였고 redhat-config-printer 를 거쳐 최근에는 system-config-printer 를 사용한다.
스캐너 관련 명령어
sane-find-scanner : USB 및 SCSI 스캐너와 관련 장치 파일을 찾아주는 명령
scanimage : 이미지를 스캔하는 명령
scanadf : 자동 문서 공급 장치(ADF)가 장착괸 스캐너에서 여러 개의 사진을 스캔할 때 사용하는 명
령이다.
xcam : GUI 기반으로 평판 스캐너나 카메라로부터 이미지를 시캔해 주는 명령
ALAS( Advanced Linux Sound Architercture ) 고급 리눅스 사운드 아키텍쳐
ALSA 는 사운드 카드용 장치 드라이버를 제공하기 위한 리눅스 커널의 요소이자 프레임워크
GPL 및 LGPL 라이선스 기반으로 배포되고 있어서 대부분의 리눅스 배포판에 기본적으로 내장되어
있다.
사운드 관련 명령어
alsactl : ALSA 사운드카드를 제어하는 명령
alsamixer : 커서 라이브러리 기반의 ALSA 사운드카드 오디오 믹서 프로그램
cdparanoia : 오디오 CD에서 음악 파일츨 추출할 때 사용하는 명령
리눅스의 런레벨
실행 레벨이란 init 데몬에 의해 수행되어질 내용이나 시스템 초기화 등을 정의해둔 여러가지 모드를 말한다.
리눅스는 총 8개의 레벨로 정의가 되어있다.
0 시스템의 종료할때 호출되는 레벨이다.(기본값으로 설정해서는 안됨)
1 단일 사용자모드(Single User Mode)로 로그인 과정 없이 root 사용자로 리눅스 시스템을 부팅하여 일종의 관리자 모드 같은 역할을 한다.
2 네트워크를 사용하지 않는 다중 사용자 모드
3 네트워크를 지원하는 다중 사용자 모드(Multiuser Mode)
4 사용되지 않는 레벨이지만, 사용자가 정의하여 사용할 수 있다.
5 X윈도를 사용하는 다중 사용자 모드로 최근 배포판에서 기본적으로 설정되는 레벨이다.
6 시스템을 재부팅할 때 호출되는 레벨이다.(기본값으로 설정해서는 안됨)
KDE
1996년 튀빙겐 대학교 학생이었던 마티아스 에트리히가 Qt 라이브러리를 기반으로 만들기 시작했고 그이후 많은 프로그래머들이 합류하면서 1998년에 첫번째 버전이 출시되었다.
그러나 Qt는 자유 소프트웨어 라이선스를 사용하지 않았기 때문에 GNU 프로젝트 회원들은 또 다른 데스크톱 환경인 GNOME 프로젝트를 시작하게 되었다.
주요 프로그램
konqueror : 웹 브라우저 및 파일 관리 프로그램
dolphin : 파일관리 프로그램
kwrite : 텍스트 편집기 프로그램
Gwenview : 이미지 뷰어 프로그램
Okular : 문서 뷰어 프로그램
KGet : 다운로드 관리자 프로그램
KMail : 메일 클라이언트 프로그램
KUser : 사용자 관리 프로그램
Krib : 데스크톱 공유 프로그램
xauth
X 접근허가(authority) 파일 관련 도구. 키값을 사용하여 인증
xhost 를 사용하면 IP변경 등의 방법을 사용하여 원치 않는 클라이언트가 접속할 수 있다. 이때 xauth 를 이용하면 이 문제를 해결할 수 있다.
X 윈도 그래픽 카드 설정 명령어
Xfree86 : XF86setup, xf86cfg, Xconfigurator, redhat-config-xfree86
x.org : system-config-display, gnome-displsy-properties
52번 해설 참조
UTP 케이블의 배열
8가닥중 실질적으로 쓰이는 선은 4개로 1, 2, 3, 6번인 ‘흰주, 주, 흰녹, 녹’ 이다.
T568B 1번과 3번 2번과 6번의 위치를 바꾸면 T568A 가 된다.
배열순서
T568B 흰주 – 주 – 흰녹 – 파 – 흰파 – 녹 – 흰갈 – 갈
T568A 흰녹 – 녹 – 흰주 – 파 – 흰파 – 주 – 흰갈 – 갈
6계층 표현 계층
표현 계층은 송수신 호스트 간에 서로 다르게 사용하는 코드와 문자 등을 번역하여 일관되게 전송 데이터를 서로 이해할 수 있도록 하는 기능을 제공한다.
데이터의 암호화와 해독을 수행하고 효율적인 전송을 위해 필요에 따라 압축과 압축해제를 수행한다.
사설 IP 대역
A 클래스 : 10.0.0.0 ~ 10.255.255.255
B 클래스 : 172.16.0.0 ~ 172.31.255.255
C 클래스 : 192.168.0.0 ~ 192.168.255.255
netstat 의 상태값
LISTEN : 서버에서 클라이언트로부터 들어오는 패킷을 위해 소켓을 열고 기다리는 상태.
SYS-SENT : 로컬 시스템의 클라이언트 애플리케이션이 원격 호스트에 연결을 요청한 상태.
SYN_RECEIVED : 서버 시스템이 원격 클라이언트로부터 접속 요구를 받아 응답을 하였지만 아직 클라이언트에게 확인 메시지는 받지 않은 상태.
ESTABLISHED : 3Way-Handshaking 이 완료된 후 서버와 클라이언트가 서로 연결된 상태.
FIN-WAIT1 : 소켓이 닫히고 연결이 종료되는 상태
FIN-WAIT2 : 연결은 종료된 상태이고, 원격호스트로부터 종료되었다는 정보를 기다리는 상태
CLOSE-WAIT : 원격 호스트는 종료된 상태이고 소켓을 종료하기 위해 기다리는 상태
CLOSING : 주로 확인 메시지가 전송 도중 분실된 상태
TIME-WAIT : 패킷 처리는 끝났지만 분실되었을지 모를 느린 세그먼트 위해 당분간 소켓을 열어놓은 상태
CLOSED : 소켓 연결이 종료된 상태이
LAST_ACK 원격 호스트가 종료되고 소캣도 닫힌 상태에서 마지막 ACK 패킷을 기다리는 상태
UNKNOWN : 소켓 상태를 확인할 수 없는 상태
프로토콜의 기본 구성 요소 3가지
구문(Syntax) : 데이터의 구조나 형식을 말하는 것으로 부호화, 신호 레벨 등을 규정
의미(Semantics) : 전송의 조작이나 오류 제어를 위한 제어 정보에 대한 규정
순서(Timing) : 접속되어 있는 개체 간의 통신 속도의 조정이나 메시지의 순서 제어
포트 번호와 주요 프로토콜
20 : FTP-data 포트로 FTP 전송 시에 사용
21 : FTP 제어에 사용
22 : SSH 에 사용
23 : TELNET 에 사용
25 : SMTP 에 사용
53 : DNS 에서 사용
80 : WWW 프로토콜인 HTTP 에서 사용
110 : POP3 에서 사용
143 : IMAP 에서 사용
161 : SNMP 에서 사용
443 : HTTPS 에서 사용
삼바(SAMBA) 서버관리
삼바는 SMB를 이용하여 리눅스를 비롯한 유닉스 계열 운영체제와 윈도우 운영체제간의 자료 및 하드웨어를 공유할 수 있도록 해준다.
현재 SMB 프로토콜은 유닉스와 윈도 환경을 동시에 지원하는 CIFS 로 확장 되었다.
TCP/IP를 사용하며 NetBIOS 프로토콜을 지원, LanManager 기능도 제공한다.
ssh 클라이언트 명령어 : ssh
리눅스에서는 openssh-clients 패키지를 설치하면 ssh 명령을 이용해서 접속할 수 있고, 윈도우에서는 xshell 등과 같은 프로그램을 이용해야 한다.
사용법
$ ssh [option] 호스트명 or IP주소
$ ssh 계정 이름@호스트네임
$ ssh 호스트네임 명령
주요 옵션
-l : 다른 계정으로 접속할 때 사용.
-p : ssh 서버의 포트 번호가 22번이 아닌 경우 -p 옵션을 사용해서 바뀐 포트를 지정할 때 사용한다.
arp
ARP(Address Resolution Protocol) 캐시를 관리하는 명령이다. ARP 캐시는 현재 접속되어 있는 32비트 IP 주소를 하드웨어 주소(MAC address)로 바꾸어서 기억하는 곳이다. 이 ARP 캐시를 보면 현재 들어와 았는 호스트에 대한 정보를 알아낼 수 있다.
68번 문제 해설 참조
ifconfig : 네트워크 인터페이스를 설정하거나 확인하는 명령이다.
netstat : 네트워크의 연결상태를 출력하는 명령
mii-too : 보통 네트워크 인터페이스의 상태를 점검하고 설정하는 유틸리티
네트워크 관련 파일
/etc/sysconfig/network : 네트워크 사용 유무 지정, 호스트명 설정, 게이트웨이 주소 설정, 게이트웨이 장치파일 설정, NIS 도메인 이름 등이 기록되는 파일이다.
/etc/sysconfig/network-scripts : 네트워크 인터페이스 환경 설정과 관련된 파일들이 저장 되는 디렉토리.
/etc/resolv.conf : 시스템에서 사용하는 DNS 서버를 설정하는 파일
/etc/hosts : DNS 서버를 사용하기 이전에 많이 이용된 파일로 IP 주소와 호스트명을 매핑시켜 데이터베이스처럼 사용하는 파일. 자주 이용하는 IP 주소에 별칭을 설정하여 접속을 쉽게 할 수 있다.
72번 문제 해설 참조
리눅스 클러스터링
여러대의 컴퓨터를 연결하여 하나의 컴퓨터를 사용하는 것처럼 구성된 시스템
고계산용 클러스터(HPC)
HPC 클러스터는 고성능의 계산 능력을 제공하기 위한 목적으로 제작되는데 주로 과학계산용으로 활용되고, 흔히 부르는 슈퍼컴퓨터가 HPC 클러스터로 구성하여 제작된다. 다른 말로 베어울프 클러스터라고도 한다.
부하분산 클러스터
대규모의 서비스를 제공하기 위한 목적으로 사용되는 클러스터 기법으로 이용자가 많은 웹 서비스 등에 활용가치가 높다. 보통 여러 대의 리얼 서버에 부하를 분산해 주는 로드 밸런서를 두고 운영한는 방법이다.
고가용성 클러스터
지속적인 서비스 제공을 목적으로 하는 클러스터로 위에 열거된 부하분산 클러스터와 연동하여 많이 사용된다. 부하분산 클러스터에서 로드 밸런서의 오류가 발생하여 동작을 하지 않는다면 리얼 서버가 정상적인 동작을 하더라도 서비스를 제공하지 못하게 된다. 이러한 문제점을 해결하기 위해 하나으 Primary Node 가 부하분산의 처리를 수행하고 다른 하나의 Backup Node 가 Primary Node 의 상태를 체크하고 있다가 이상이 발생하면 서비스를 받도록 구성하는 바법이다.
클라우드 컴퓨팅에서 제공하는 서비스
클라우드 컴퓨팅이 발전하면서 모든 IT 자원을 서비스 형태로 제공할 수 있는 환경으로 바뀌고 있다. 클라우드 컴퓨팅 서비스는 일정부분 공통적인 요소를 가지고 있지만 IssS, PaaS, SaaS 등 크게 세가지로 구분된다.
IaaS : 업무 처리에 필요한 서버, 데스크톱 컴퓨터, 스토리지 같은 IT 하드웨어 자원을 클라우드 서비스로 빌려 쓰는 형태
PaaS : 업무에 필요한 소프트웨어를 개발할 수 있는 환경(플랫폼)을 클라우드에서 제공받는다.
SaaS : 기업에서 사용하는 소프트웨어를 통째로 클라우드 사업자에게 빌려 쓰는 개념
빅데이터 관련 기술
빅 데이터를 분석하는 기술과 방법에는 기존의 통계학 및 전산학에서 사용되었던 데이터 마이닝, 기계 학습, 자연 언어 처리, 패턴 인식 등이 해당된다. 특히 소셜미디어 등의 비정형 데이터의 증가로 인해 분석 기법들 중에서 텍스트 마이닝, 오피니언 마이닝, 소셜네트워크 분석, 군집분석 등이 주목받고 있다.
Hadoop(하둡) : 대규모의 정형 및 비정형 데이터를 처리하는 데 있어 가장 기본적인 분석 인프라
NoSQL : 데이터를 유연하고 더욱 빠르게 처리하기 위한 기술
R(프로그래밍 언어) : 빅 데이터 분석 기술을 통해 분석된 데이터의 의미와 가치를 시각적으로 표현하는 기술